package online.misscl.lsy.controller.back;

import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import online.misscl.lsy.controller.BaseController;
import online.misscl.lsy.entity.MessageBox;
import online.misscl.lsy.entity.dto.MessageBoxQueryDto;
import online.misscl.lsy.entity.dto.MessageBoxUpdateDto;
import online.misscl.lsy.entity.dto.vo.MessageBoxVo;
import online.misscl.lsy.entity.dto.vo.TableDataInfoVo;
import online.misscl.lsy.service.MessageBoxService;
import online.misscl.lsy.util.AjaxResult;
import online.misscl.lsy.util.PageUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

import java.util.List;

/**
 * project name: IntelliJ IDEA
 * Date: 2023/3/11 13:01
 *
 * @PackageName: online.misscl.lsy.controller.back
 * @ClassName: MessageBoxController
 * @Author: code mover
 * @Version:
 * @Description:
 */
@Api(tags = "留言箱管理")
@RestController
@RequestMapping("/back")
public class MessageBoxBackController extends BaseController {
    @Autowired
    private MessageBoxService messageBoxService;

    @ApiOperation("内嵌pageSize的条件查询")
    @GetMapping("/messageBoxes")
    public TableDataInfoVo<List<MessageBoxVo>> list(MessageBoxQueryDto messageBoxQueryDto){
        List<MessageBoxVo> list = messageBoxService.messageBoxQueryList(messageBoxQueryDto);
        Page page = PageUtil.getPages(messageBoxQueryDto.getPageNum(),messageBoxQueryDto.getPageSize(),list);
        return getDataTable(page.getRecords(),page.getTotal());
    }

    @ApiOperation("获取单个分类")
    @GetMapping("/messageBox/{messageId}")
    public AjaxResult getOne(@PathVariable Integer messageId){
        LambdaQueryWrapper<MessageBox> wrapper = new LambdaQueryWrapper<>();
        wrapper.eq(MessageBox::getMessageId,messageId);
        MessageBox one = messageBoxService.getOne(wrapper);
        return AjaxResult.success(one);
    }

    @ApiOperation("删除留言")
    @DeleteMapping("/messageBox/{messageId}")
    public AjaxResult deleteMessageBox(@PathVariable Integer messageId){
        return toAjax(messageBoxService.deleteMessageBox(messageId));
    }

    @ApiOperation("管理员回复")
    @PutMapping("/messageBox")
    public AjaxResult updateMessageBox(@RequestBody MessageBox messageBox){
        return toAjax(messageBoxService.updateById(messageBox));
    }
}
